//
//  KTabBar.m
//  TimeToCoin
//
//  Created by QuanLi on 2018/8/1.
//  Copyright © 2018年 QuanLi Technology Limited. All rights reserved.
//

#import "KTabBar.h"

@interface KTabBar()

@property (nonatomic,strong) UIButton * mineBtn;



@end

@implementation KTabBar

#pragma mark - UIView 布局
-(instancetype)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        
        
        [self setUI];
        self.backgroundColor = KWhiteColor;
    }
    return self;
}

#pragma mark - UIView布局
-(void)setUI
{
    UIButton *mineBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    mineBtn.tag = 10;
//    mineBtn.backgroundColor = [UIColor redColor];
    [mineBtn addTarget:self action:@selector(clickMineModule:) forControlEvents:UIControlEventTouchUpInside];
    self.mineBtn = mineBtn;
    
    
}

-(void)clickMineModule:(UIButton *)btn
{
    NSLog(@"tag:%zd",btn.tag);
    
    if (self.wj_delegate && [self.wj_delegate respondsToSelector:@selector(clickTabBarBtn:)]) {
        [self.wj_delegate clickTabBarBtn:btn];
    }
}

- (void)layoutSubviews{
    
    [super layoutSubviews];
    
    //将透明的按钮frame设置为 第三个UITabBarButton的frame
    
    CGRect buttonFrame = CGRectMake(0, 0, 0, 0);
    
    
    for (UIView *button in self.subviews) {
        
        if (![button isKindOfClass:NSClassFromString(@"UITabBarButton")]) continue;
        
        
        
        buttonFrame = button.frame;
        
        
        
    }
    
//    self.mineBtn.frame = buttonFrame;
//    
//    [self addSubview:self.mineBtn];
    
}


////重写hitTest方法，去监听发布按钮的点击，目的是为了让凸出的部分点击也有反应
//- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
//    
//    //这一个判断是关键，不判断的话push到其他页面，点击发布按钮的位置也是会有反应的，这样就不好了
//    //self.isHidden == NO 说明当前页面是有tabbar的，那么肯定是在导航控制器的根控制器页面
//    //在导航控制器根控制器页面，那么我们就需要判断手指点击的位置是否在发布按钮身上
//    //是的话让发布按钮自己处理点击事件，不是的话让系统去处理点击事件就可以了
//    if (self.isHidden == NO) {
//        
//        //将当前tabbar的触摸点转换坐标系，转换到发布按钮的身上，生成一个新的点
//        CGPoint newP = [self convertPoint:point toView:self.bigWheelBtn];
//        
//        //判断如果这个新的点是在发布按钮身上，那么处理点击事件最合适的view就是发布按钮
//        if ( [self.bigWheelBtn pointInside:newP withEvent:event]) {
//            return self.bigWheelBtn;
//        }else{//如果点不在发布按钮身上，直接让系统处理就可以了
//            
//            return [super hitTest:point withEvent:event];
//        }
//    }
//    
//    else {//tabbar隐藏了，那么说明已经push到其他的页面了，这个时候还是让系统去判断最合适的view处理就好了
//        return [super hitTest:point withEvent:event];
//    }
//}

@end
